use gtk::prelude::*;
use gtk::{Application, ApplicationWindow, Button};

pub fn main() {
    // Create a new application
    let app = Application::builder()
        .application_id("org.gtk-rs.example")
        .build();

    // Connect to "activate" signal
    app.connect_activate(build_ui);

    // Run the application
    app.run();
}

fn build_ui(app: &Application) {
    // Init `gtk::Builder` from file
    let builder = gtk::Builder::from_string(include_str!("window0.ui"));

    // Get window and button from `gtk::Builder`
    let window=ApplicationWindow::builder().application(app)
        .title("HelloRust")
        // .set_default_size(350, 70)
        .build();
        // .object("window")
        // .expect("Could not get object `window` from builder.");
    let button = Button::with_label("Click me!");
    button.connect_clicked(move|button| {
            // eprintln!("Clicked!");
            // AboutDialog::new().present();
            button.set_label("Hello World!");
    });
    // // Connect to "clicked" signal
    // button.connect_clicked(move |button| {
    //     // Set the label to "Hello World!" after the button has been clicked on
    //     button.set_label("Hello World!");
    // });

    // // Add button
    window.set_child(Some(&button));
    window.present();
}
// fn build_ui(app: &Application) {
//     // Create a window and set the title
//     let window = ApplicationWindow::builder()
//         .application(app)
//         .title("HelloRust")
//         // .set_default_size(350, 70)
//         .build();

//         // let outer_box = gtk::Box::new(gtk::Orientation::Vertical, 0);
//         // let entry: gtk::Entry = gtk::Entry::new();
//         // entry.set_size_request(500, 15);
//         // entry.set_margin_start(10);
//         // entry.set_margin_end(10);
//         // entry.set_margin_top(10);
//         // entry.set_max_width_chars(20);
//         // let confirm_button = Button::with_label("ok");
//         // confirm_button.set_size_request(300, 20);
//         // confirm_button.set_margin_start(30);
//         // confirm_button.set_margin_end(30);
//         // confirm_button.set_margin_top(30);
//         // let verify_button = Button::with_label("cancel");
//         // verify_button.set_size_request(100, 20);
//         // verify_button.set_margin_start(30);
//         // verify_button.set_margin_end(30);
//         // verify_button.set_margin_top(30);
//         // outer_box.pack_start(&entry, false, false, 0);
//         // outer_box.pack_start(&confirm_button, false, false, 0);
//         // outer_box.pack_start(&verify_button, false, false, 0);
//         // window.add(&outer_box);

//         // // let amount_buffer = entry.get_buffer();
//         // confirm_button.connect_clicked(move |_| {
//         //     eprintln!("click ok");
//         //     MessageDialog::new(None::<&Window>,
//         //                DialogFlags::empty(),
//         //                MessageType::Info,
//         //                ButtonsType::Ok,
//         //                "Hello World").run();
//         //     eprintln!("hello");
//         //     // let re = Regex::new(r"^[0-9]*[1-9][0-9]*$").unwrap();
//         //     // let amount = amount_buffer.get_text();
//         //     // if re.is_match(&amount) {
//         //     //     //输入金额合法
//         //     // } else {
//         //     //     //请输入正确的金额，需是正整数
//         //     // }
//         // });
//         window.present();
// }